package com.ruoyi.business.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.dto.WsdCanteensOrderDTO;
import com.ruoyi.common.core.domain.entity.WsdCanteenBalance;
import com.ruoyi.common.core.domain.vo.OrderPeopleNumVO;
import com.ruoyi.common.core.domain.vo.WsdCanteensOrderVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额Mapper接口
 *
 * @author ruoyi
 * @date 2024-05-22
 */
@Mapper
public interface WsdCanteenBalanceMapper extends BaseMapper<WsdCanteenBalance>
{
    /**
     * 查询饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     *
     * @param balanceId 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额主键
     * @return 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     */
    public WsdCanteenBalance selectWsdCanteenBalanceByBalanceId(String balanceId);

    /**
     * 根据条件查账户
     * @param
     * @return
     */
    WsdCanteenBalance getWsdCanteenBalance(@Param("schoolId") Long schoolId,@Param("configId") Long configId,@Param("studentId") Long studentId);
    List<WsdCanteensOrderVO> orderFoodList(WsdCanteensOrderDTO wsdCanteensOrderDTO);
    /**
     * 查询饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额列表
     *
     * @param wsdCanteenBalance 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     * @return 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额集合
     */
    public List<WsdCanteenBalance> selectWsdCanteenBalanceList(WsdCanteenBalance wsdCanteenBalance);

    /**
     * 新增饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     *
     * @param wsdCanteenBalance 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     * @return 结果
     */
    public int insertWsdCanteenBalance(WsdCanteenBalance wsdCanteenBalance);

    /**
     * 修改饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     *
     * @param wsdCanteenBalance 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     * @return 结果
     */
    public int updateWsdCanteenBalance(WsdCanteenBalance wsdCanteenBalance);

    /**
     * 删除饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     *
     * @param balanceId 饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额主键
     * @return 结果
     */
    public int deleteWsdCanteenBalanceByBalanceId(String balanceId);

    /**
     * 批量删除饭堂余额，记录学生在学校饭堂的总充值金额和总退款金额
     *
     * @param balanceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWsdCanteenBalanceByBalanceIds(String[] balanceIds);

    void updateBalanceByMealTypeById(WsdCanteenBalance balance);

    /*
    * 根据学校id查询学生人数
     */
    Integer selectStudentCountBySchool(@Param("schoolId") Long schoolId);
    Integer selectStudentCount(@Param("schoolId") Long schoolId,@Param("configId") Long configId);
    OrderPeopleNumVO orderPeopleNum(WsdCanteensOrderDTO wsdCanteensOrderDTO);
}
